import {
  Http
} from "../../utils/http"
import {
  Wallet
} from '../../model/wallet'
import {
  wallet as Walleta
} from "../../utils/wallet"
import {
  Pay
} from "../../model/Pay"



Page({

  data: {
    content: '', //输入内容
    KeyboardKeys: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, '·'],
    keyShow: true, //默认显示键盘
    paymoney: 0,
    showacny: false,
    money: 0,
    currentValue: null,
    store_id: "",
    phone: '',
    username: '',
    order_no: '',
    bz: '添加备注',
    bzShow: false,
    userList: [],
    username: ''
  },

  //生命周期函数--监听页面加载
  onLoad: async function (options) {
    let user_id = options.scene;
    let result = await Http.request({
      url: 'wechat/index/get_user_info_by_uid',
      data: {
        user_id,
      },
    })
    console.log(result);
    this.setData({
      userList: result.data,
      username: result.data.username.substring(1, )
    })

  },

  //防抖
  //点击开始的时间
  touchStarts(e) {
    this.touchStartTime = e.timeStamp; //赋值开始的时间
  },

  //点击结束的时间
  touchEnds(e) {
    this.touchEndTime = e.timeStamp; //赋值结束的时间
  },

  //关闭钱包支付
  onCloses() {
    this.setData({
      showacny: false
    });
  },

  //生命周期函数--监听页面显示
  onShow: async function () {
    //获取 会员钱包余额的方法
    let wallet = await Walleta.walletMoney()
    console.log(wallet);
    this.setData({
      money: wallet.balance
    })
  },

  //获取 余额支付 - 支付
  paymoney: async function (currentValue) {
    let pay = await Pay.get_pay_balance_product(this.data.order_no, currentValue)
    console.log(pay.msg);
    if (pay.code == 0) {
      wx.redirectTo({
        url: "/pages/paymoney/index?money=" + parseFloat(this.data.content)
      })
    } else {
      this.passwordBox = this.selectComponent('#passwordBox');
      this.passwordBox.clearCurrentValue();
      wx.showToast({
        title: pay.msg,
        duration: 2000,
        icon: 'none'
      });
    }
  },

  //监听input框
  inputChange(e) {
    this.passwordBox = this.selectComponent('#passwordBox') //清空
    let currentValue = e.detail
    this.setData({
      currentValue
    })
    if (currentValue.length == 6) {
      console.log("支付密码：" + this.data.currentValue);
      this.setData({
        showacny: false
      });
      this.paymoney(this.data.currentValue);
    }
  },

  //备注
  bz1() {
    if (this.data.bz == '添加备注') {
      this.setData({
        bz: ''
      })
    }
  },

  //备注
  bz(e) {
    let s = e.detail.value
    this.setData({
      bz: s
    })
    if (this.data.bz == '') {
      this.setData({
        bz: '添加备注'
      })
    }
  },



  //数字键盘
  keyTap(e) {
    var _this = this,
      keys = e.currentTarget.dataset.keys,
      content = _this.data.content,
      len = content.length;

    switch (keys) {
      case '·': //点击小数点，（注意输入字符串里的是小数点，但是我界面显示的点不是小数点，是居中的点，在中文输入法下按键盘最左边从上往下数的第二个键，也就是数字键1左边的键可以打出居中的点）
        if (len < 11 && content.indexOf('.') == -1) { //如果字符串里有小数点了，则不能继续输入小数点，且控制最多可输入10个字符串
          if (content.length < 1) { //如果小数点是第一个输入，那么在字符串前面补上一个0，让其变成0.
            content = '0.';
          } else { //如果不是第一个输入小数点，那么直接在字符串里加上小数点
            content += '.';
          }
        }
        break;
      case 0:
        if (len < 4) {
          if (content.length < 1) { //如果0是第一个输入，让其变成0.
            content = '0.';
          } else {
            content += '0'
          }
        }
        break;
      case '<': //如果点击删除键就删除字符串里的最后一个
        content = content.substr(0, content.length - 1);
        break;
      default:
        let Index = content.indexOf('.'); //小数点在字符串中的位置
        if (Index == -1 || len - Index != 3) { //这里控制小数点只保留两位
          if (len < 11) { //控制最多可输入10个字符串
            content += keys;
          }
        }
        break
    }

    _this.setData({
      content
    });

  },

  //点击输入框，键盘显示
  showKeyboard() {
    var _this = this
    _this.setData({
      keyShow: true,
      bzShow: false
    });
  },

  // 付款
  payTap: async function (e) {
    var _this = this;
    // 控制点击事件在350ms内触发，加这层判断是为了防止长按时会触发点击事件
    if (_this.touchEndTime - _this.touchStartTime < 350) {
      var currentTime = e.timeStamp; // 当前点击的时间
      var lastTapTime = _this.lastTapTime; //最后一次点击时间
      _this.lastTapTime = currentTime; // 更新最后一次点击时间

      if (_this.data.content == null || _this.data.content == 0 || _this.data.content == "") {
        wx.showToast({
          title: '请输入金额',
          icon: 'error'
        })
      } else {
        if (wx.getStorageSync('payment_password') == 1) { //判断有没有设置密码
          _this.setData({
            keyShow: false,
            bzShow: true
          });
          // 如果两次点击时间在500ms内，则认为是双击事件
          if (currentTime - lastTapTime > 500 || lastTapTime == undefined) {
            //判断余额够不够
            if (parseFloat(_this.data.money) > parseFloat(_this.data.content)) {
              //获取 收款 - 下单
              let wallet = await Wallet.get_pay_by_native(_this.data.content);
              _this.setData({
                order_no: wallet.data.order_no
              })
              console.log(wallet.msg);
              if (wallet.code == 0) {
                _this.setData({
                  showacny: true
                });
              }
            } else {
              wx.showToast({
                title: '余额不足',
                icon: 'error'
              })
            }
          } else {
            //模拟网络请求
            wx.showToast({
              title: '请勿多次点击',
              icon: 'error'
            })
            await setTimeout(function () {
              wx.hideToast()
            }, 2000)
          }
        } else {
          wx.showModal({
            title: '提示',
            content: '亲！你还未设置支付密码,是否现在设置',
            success(res) {
              if (res.confirm) {
                wx.navigateTo({
                  url: '/pages/pad/index?store_id=' + that.data.store_id + '&phone=' + that.data.phone + '&username=' + that.data.username + '&mack=1'
                })
              } else if (res.cancel) {
                console.log('用户点击取消')
              }
            }
          })
        }
      }

    }
  }

})